using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UI_角色预设 : UI基类
{
    public UI组件_渐变色选择 肤色选择;
    public UI_角色预览 角色预览;

    public UI组件_选择框 发型;
    public UI组件_选择框 脸型;
    public UI组件_选择框 性别;

    public UI组件_颜色选择 发色;

    private 种族信息 种族信息;

    private IEnumerator _初始化()
    {
        发色.初始化(当发色改变时);
        当发色改变时(发色.默认色);

        while (!游戏管理器.获取实例.道具与贴图加载完成)
            yield return 0;

        种族信息 = 游戏数据管理器.获取实例.获取种族信息("人类");
        肤色选择.初始化(种族信息.皮肤色.色彩, 种族信息.皮肤色.结束色, 当肤色改变时);

        性别.初始化(new List<string>() { "女", "男" }, 当性别改变时);

        List<人形生物贴图> 发型列表, 面部列表;
        种族信息.获取贴图(out 发型列表, out 面部列表, "女");

        发型.初始化(种族信息.获取贴图名称(发型列表), 当发型改变时);

        脸型.初始化(种族信息.获取贴图名称(面部列表), 当脸型改变时);
    }

    private void 当发型改变时(string 发型名)
    {
        人形生物贴图 当前贴图 = 游戏数据管理器.获取实例.获取生物贴图<人形生物贴图>(发型名);
        角色预览.头发.sprite = 当前贴图.贴图.正面贴图;
    }

    private void 当性别改变时(string 性别)
    {
        List<人形生物贴图> 发型列表, 面部列表;
        种族信息.获取贴图(out 发型列表, out 面部列表, 性别);

        发型.初始化(种族信息.获取贴图名称(发型列表), 当发型改变时);
        脸型.初始化(种族信息.获取贴图名称(面部列表), 当脸型改变时);
    }

    private void 当脸型改变时(string 脸型名)
    {
        角色预览.脸.sprite = 游戏数据管理器.获取实例.获取生物贴图<人形生物贴图>(脸型名).贴图.正面贴图;
    }

    private void 当发色改变时(Color 发色)
    {
        角色预览.头发.color = 发色;
    }

    private void 当肤色改变时(Color color)
    {
        角色预览.脸.color = color;
        角色预览.躯干.color = color;
    }

    private void Start()
    {
        StartCoroutine(_初始化());
    }
}
